﻿#region Using Statements

using System;

#endregion

namespace HumanElement.Xna
{
    public interface IGameService<TEntity> : IGameService
        where TEntity : IEntity
    {
        /// <summary>
        /// Gets the current TEntity for the Game Service.
        /// </summary>
        /// <value>The current entity.</value>
        TEntity Current { get; }

        /// <summary>
        /// Gets the specified key.
        /// </summary>
        /// <typeparam name="TKey">The type of the key.</typeparam>
        /// <param name="key">The key.</param>
        /// <returns></returns>
        TEntity Get<TKey>(TKey key);
    }

    public interface IGameService : IInitialize, IUpdate, IName
    {
        /// <summary>
        /// Gets the supported entity.
        /// </summary>
        /// <returns></returns>
        Type GetSupportedEntity();
    }
}